public void start(String[] args) // Main body. Starts the script (args aren't used atm)

/** TRIGGERS **/
public void handleLogin(String user, boolean login) // Triggers a friends list action (true = login. false = logout)
public void handlePM(String user, String msg) // Handles any PMs sent to you from the given user.
public void handleKeyPress(int key) // Handles a key press with the given key id
public void getInfo() // Used to relay script info to the bot client
public void stop() // Invoked when the script is stopped

/** FRIENDS **/
public void sendPM(String to, String msg) // Sends a private message in-game to the given player 'to'

/** GUI **/
public GameFrame getFrame() // Returns the game java.awt.Frame object.

/** UTILS **/
public int random(int min, int max) // Returns a random number between the two given values.
public int distanceTo(int x1, int y1, int x2, int y2) // Return the distance from the first coords to the second coords
public int distanceTo(int x, int y) // Return the distance from our current coords to the given ones
public void println(Object o) // System.out.println's the given object
public void display(Object o) // Displays the given object ingame
public void addDisplayText(String s) // * Deprecated. Doesn't work at the moment.
public void removeDisplayText(String s) // * Deprecated.
public void removeDisplayText() // * Deprecated.

/** SCRIPT **/
public void exit(String message) // Prints the message then exits the bot.
public void setThread(Thread scriptThread) // Don't ever use this.
public Thread getThread() // Returns this script's Thread.
public boolean isRunning() // Returns if this script is running or not
public void sleep(int ms) // Pauses the script for the given milliseconds
public void sleep(int min, int max) // Pauses for a random amt of time between the two values
public void caution() // Waits while new areas load/you're logged out/are sleeping etc
public boolean isLoading() // Return if a new area is loading
public int getGameType() // Return what server we're logged in to
public ScriptManager getScriptManager() // Returns the script manager
public mudclient getClient() // Returns our mudclient
public boolean runStartupScripts() // If returns false, the startup scripts won't run when this script runs
public Info getDisplayInfo() // Returns the Info object to display in the client.

/** PRAYER **/
public boolean isPrayerOn(int idx) // Returns if the given prayer index is activated
public void setPrayer(int idx, boolean on) // Sets the prayer on or off, depending on the given boolean

/** OUR PLAYER **/
public int getCurPrayer() // Return your current prayer level
public int getCurHits() // Return your current hits level
public int getMaxHits() // Return your max hits level
public boolean isLoggedIn() // Return if you're currently logged in
public boolean isSleeping() // Return if you're currently sleeping
public int getX() // Returns this player's current X coord
public int getY() // Returns this player's current Y coord
public void setAutologin(boolean on) // Sets autologin on/off
public void walkTo(int x, int y) // Sends the walk command to the given coords once
public void walkToWait(int x, int y) // Walks to the given coords until you reach them
public boolean isReachable(int x, int y) // Returns if the given coords are reachable
public int getAreaX() // Return the current area x offset
public int getAreaY() // Return the current area y offset
public int getSectionX() // Return the current section x offset
public int getSectionY() // Return the current section y offset
public boolean inCombat() // Return if we're in combat
public int getFightMode() // Return our fight mode
public void setFightMode(int mode) // Sets our current fight mode to the given one
public int getCurStat(int index) // Return our current stat with the given stat index
public int getMaxStat(int index) // Return our max stat with the given stat index
public int getFatigue() // Return our fatigue
public Mob getOurPlayer() // Returns our player's Mob object
public void logout() // Logs out immediately
public void say(String s) // Makes our player say the given message
public void logout(boolean legit) // Logs out (boolean legit = whether to logout normally or force logout).
public Mob getOpponent() // Returns the last player Mob we sent the attack command to
public void attackPlayer(Mob player) // Attacks the given player
public boolean inWild() // Returns if we're in the wilderness
public int getWildLevel() // Returns our current wildy level
public double getHitsPercent() // Returns our hits as a percentage (eg. 0.5 = 50%)

/** INVENTORY **/
public void useSlot(int slot) // Uses the item if the given slot
public void useItem(int id) // Uses the given item id
public int countItem(int id) // Returns the number of items you have of the given id
public boolean hasItem(int id) // Returns if our player has the given item id
public int getSlot(int id) // Returns the slot of the given item id
public int getInvCount() // Returns our total inventory count
public void drop(int slot) // Drops the item in the given slot
public void dropItem(int id) // Drops the item with the given id
public int getSlotId(int slot) // Returns the id of the item in the given slot.
public void useSlotOnSlot(int slot1, int slot2) // Uses the first slot on the second slot.
public void useItemOnItem(int item1, int item2) // Uses the first item on the second item (by ID).

/** BANK **/
public boolean inBank() // Returns if we're in the bank or not
public int getBankItem(int index) // Returns the given bank item at the given index
public int getBankSlot(int itemId) // Returns which slot the given item id is in
public int countBank(int id) // Returns how many of the given item we have in our bank
public int getBankCount() // Returns our current bank count
public void withdraw(int id, int amt) // Withdraws the given bank item id and amount
public void deposit(int id, int amt) // Deposits the given bank item id and amount
public void bankAction(int id, int amount, boolean widthdraw) // Sends a bank action with the given information
public void closeBank() // Closes the bank

/** SHOPS **/
public boolean inShop() // Returns if we're currently in a shop
public int[] getShopItems() // Returns the current shop items array
public int getShopCount() // Returns the current total shop item count
public int getShopStock(int id) // Returns the current shop stock of the given item id
public int getShopIndex(int id) // Returns the shop item index with the given item id
public int getShopId(int index) // Returns the given shop item index's item id
public void buyItemIndex(int idx) // Buys the given item index
public void buyItem(int id) // Buys the given item id
public void sellItemIndex(int idx) // Sells the given item index
public void sellItem(int id) // Sells the given item id
public void closeShop() // Closes the shop

/** QUESTION MENUS **/
public int getQuestMenuItemCount() // Return how many question options there are
public int getQuestMenuOptionIndex(String reply) // Return which index the given reply is
public String getQuestMenuOption(int index) // Returns the given option index's String sentence
public String[] getQuestMenuOptions() // Returns the question menu options array
public void sendQuestMenuReply(int idx) // Answers the question menu with the given index reply
public void snedQuestMenuReply(String reply) // Answers the question menu with the index of the given reply sentence
public boolean inQuestMenu() // Returns if we have a question menu open

/** GROUND ITEMS **/
public int getGroundItemCount() // Returns the number of ground items in your area
public int getItemIndex(int x, int y, int id) // Returns an item index of an item at the given coords with the given id
public void take(int x, int y, int id) // Takes the item from the given coords with the given id
public void take(int[] item) // Takes the item, using the given item info array
public int[] getItemById(int id) // Returns the item info of the nearest item with the given id
public int getItemX(int index) // Returns the given item's x coord
public int getItemY(int index) // Returns the given item's y coord
public void useItemGround(int slot, int x, int y, int item) // * Deprecated. Uses the given item slot on the given item at the given coords (useless?)
public void useItemGround(int slot, int[] item) // *Deprecated. Uses the given slot on the given item info.
public void useOnObject(int slot, int x, int y) // Uses the given item slot on the object at the given coords
public int[] getItemById(int[] ids) // Returns item info based on multiple item ids.

/** PLAYERS **/
public int getPlayerX(Mob player) // Return the given player's x coord
public int getPlayerY(Mob player) // Return the given player's y coord
public int getPlayerIndex(int serverIdx) // Return the given player's array index from his server index
public int getPlayerX(int arrayIndex) // Return the given player's x coord
public int getPlayerY(int arrayIndex) // Return the given player's y coord
public int getPlayerCount() // Returns the number of players in our area
public Mob getPlayer(int index) // Returns the Mob object of the given player
public void walkToPlayer(Mob player) // Sends the walk command to the given player
public boolean inWild(Mob player) // Returns if the given player is in the wild
public boolean isPlayerAttackable(Mob player) // Returns if we can attack the given player

/** NPCS **/
public void attackNpc(int index) // Attacks the given npc
public void attackNearestNpc(int id) // Attacks the nearest npc with the given ID
public void talkToNpc(int index) // Talks to the nearest npc with the given index
public void thieveNpc(int index) // Thieves the given NPC
public void castOnNpc(int spell, int index) // Casts the given spell on the given NPC
public void talkToNearestNpc(int id) // Talks to the nearest npc with the given ID.
public void getNpcServerIndex(int arrayIndex) // Return the given NPC array index's server index
public int getNpcX(int index) // Return the NPC's x coord
public int getNpcY(int index) // Return the NPC's y coord
public int getNpcIdByIndex(int index) // Return the given npc's id from array index
public int getNpcIndexById(int id) // Return the nearest non-busy NPC with the given ID.
public int getNpcIndexById(int[] id) // Return the nearest non-busy NPC with the given ID from the given array
public int getNpcByAttackable() // Return the nearest attackable NPC
public int getNpcCount() // Return the number of NPCs in your area
public void walkToNpc(int idx) // Sends the walk command to the given npc's location

/** ACTIONS **/
public void fakeAction(int id, int x, int y) // Fakes a menu click with the given args
public void fakeAction(int id, int x, int y, int type) // Fakes a menu click with the given args
public void fakeAction(int id, int type) // Fakes a menu click with the given args
public void fakeObjAction(int id, int x, int y, int type, int var) // Fakes a menu click on the given object info

/** OBJECTS **/
public int getObjectIndex(int x, int y) // Returns the object's index at the given coords
public int getObjectId(int x, int y) // Returns the object at the given coord's ID
public void atObject(int x, int y) // Acts on the object at the given coords
public void atObject2(int x, int y) // Acts secondary on the object at the given coords
public void atObject(int x, int y, boolean first) // Acts on the given object, specifying first or second option
public int getObjectX(int index) // Returns the given object's x coord
public int getObjectY(int index) // Returns the given object's y coord
public int getNearestObjectById(int id) // Returns the nearest object index with the given id
public int getNearestObjectById(int[] id) // Returns the nearest object index with the given id from the list of ids
public int getObjectCount() // Returns the number of objects in your area

/** DOORS **/
public int getDoorIndex(int x, int y) // Returns the door at the given coord's index
public int getDoorId(int x, int y) // Returns the door's id at the given coords
public int getDoorX(int index) // Return the given door's x coord
public int getDoorY(int index) // Return the given door's y coord
public int getDoorCount() // Returns the number of doors in your area
public void atDoor(int x, int y) // Acts on the door at the given coords
public void atDoor2(int x, int y) // Acts secondary on the door at the given coords
public void atDoor(int x, int y, boolean first) // Acts on the door at the given coords, specifying first or second option

/** INPUT **/
public String getInput(Object question) // Returns the text input reply from the user.
public int getInputInt(Object question) // Returns a number input reply from the user.
public int getSelection(Object question, Object[] options) // Returns which option index the user selected
public Object getSelected(Object question, Object[] options) // Returns which object was selected by the user
public int showOptions(Object question, Object[] options) // Returns which option was selected out of the given options
public boolean showYesNo(Object question) // Returns if the user clicked Yes when the option was displayed